package com.llf.Blog.Mapper;

import com.llf.Blog.Pojo.Blog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author llf
 * @since 2021-08-07
 */
@Repository
@Mapper
public interface BlogMapper extends BaseMapper<Blog> {
    /**
     *
     * @param typeId 博客类型
     * @param title 博客标题
     * @param published 发布状态
     * @return 在管理页面 进行管理
     */

    List<Blog> getAllBlog(@Param("typeId") Integer typeId, @Param("title") String title,
                          @Param("published") Boolean published);

    Boolean updateBlog(Blog blog);

    /**
     *
     * @return 得到所有信息 用在首页
     */
    List<Blog> getBlog(@Param("typeId") Long id);

    /**
     *
     * @return 按照时间降序 用在最新推荐
     */
    List<Blog> getBlogByTime();

    /**
     * search模糊查询 博客
     */
    List<Blog> getBlogByLike(@Param("quarry") String quarry);

    /**
     * 根据标签id查询博客
     */
    List<Blog> getBlogByTagId( @Param("id") Long id);

    /**
     * 按照年份 分组查找
     */

    List<Blog> getAllByYear(@Param("year") Integer year);

    /**
     *  根据ID获得博客内容
     * @param id 博客ID
     * @return 博客
     */
    Blog getBlogById( @Param("id") Long id);

    /**
     *  根据博客id更新博客浏览次数
     */
    int updateViews(@Param("id") Long blogId);
}

